/**
 * 
 */
package core;

import java.awt.event.MouseEvent;

import activeQM.ClienteQMTopicoPantallaCompartida;
import Iview.IFormEscritorioEstudiante;
import presentadores.presenterLogin;
import contenedorSpring.Contenedor;
import icore.ICoreGestorEscritorio;


import skeleton.IControlRemoto;
import utilidades.ViewerData;

/**
 * @author Elkin Torres
 * 
 */
public class ControlRemoto implements IControlRemoto {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3591238032325433184L;
	ICoreGestorEscritorio escritorio;

	/**
	 * @param escritorio
	 *            the escritorio to set
	 */
	public void setEscritorio(ICoreGestorEscritorio escritorio) {
		this.escritorio = escritorio;
	}

	@Override
	public byte[] getPantalla() {
		return escritorio.getPantallaEscritorio();
	}

	@Override
	public void navegarAplicacion(Boolean acceso) {
		presenterLogin j =(presenterLogin)Contenedor.getSingleton().getApplicationContext().getBean("presenterLogin");
		j.navegarFormulario(acceso);
	}

	@Override
	public void ejecutarEventoMouse(MouseEvent evento, ViewerData viewerData) {
		escritorio.ejecutarEventoMouse(evento, viewerData);
	}

	@Override
	public void compartirPantalla(Boolean autorizacion) {
		
		IFormEscritorioEstudiante j =(IFormEscritorioEstudiante)Contenedor.getSingleton().getApplicationContext().getBean("formEscritorioEstudiante");
		ClienteQMTopicoPantallaCompartida p = (ClienteQMTopicoPantallaCompartida) Contenedor.getSingleton().getApplicationContext().getBean("ListenerPantallaCompartida");
		p.setCompartirPantalla(autorizacion);
		if(autorizacion)
			j.mostrarMensaje(1,"Su petición de compartir pantalla fue aceptada");
		else
			j.mostrarMensaje(2,"Su petición de compartir pantalla fue denegada");
	}

	@Override
	public void cerrarPantallaCompartida() {
		ClienteQMTopicoPantallaCompartida p = (ClienteQMTopicoPantallaCompartida) Contenedor.getSingleton().getApplicationContext().getBean("ListenerPantallaCompartida");
		p.getEscritorio().setVisible(false);
		p.getEscritorio().setEstadoVista(false);
		
	}

	@Override
	public void detenerCompartirPantalla(Boolean autorizacion) {
		ClienteQMTopicoPantallaCompartida p = (ClienteQMTopicoPantallaCompartida) Contenedor.getSingleton().getApplicationContext().getBean("ListenerPantallaCompartida");
		p.setCompartirPantalla(autorizacion);
	}

	@Override
	public void enviarIPPantallaCompartida(String ip) {
		ClienteQMTopicoPantallaCompartida p = (ClienteQMTopicoPantallaCompartida) Contenedor.getSingleton().getApplicationContext().getBean("ListenerPantallaCompartida");
		p.getEscritorio().setIpEscritorioCompartido(ip);
	}
}
